1. Field of the Invention
This invention relates in general to computer systems and in particular to operating code storage in system memory for a computer bus controller.
2. Description of the Related Art
Computer systems are information handling electronic systems which can be designed to give independent computing power to one user or a plurality of users. Computer systems may be found in many forms including, for example, mainframes, minicomputers, workstations, servers, personal computers, internet terminals, notebooks, and embedded systems. Computer systems include desk top, floor standing, rack mounted, or portable versions. A typical computer system includes at least one system processor, associated memory and control logic, and peripheral devices that provide input and output for the system. Such peripheral devices may include display monitors, keyboards, mouse-type input devices, floppy and hard disk drives, CD-ROM drives, printers, network capability card circuits, terminal devices, modems, televisions, sound devices, voice recognition devices, electronic pen devices, and mass storage devices such as tape drives, CD-R drives, or DVDs.
Computer systems utilize computer buses for operably coupling peripheral devices to the system processor. An example of a such a computer bus is a computer bus conforming to the Universal Serial Bus (USB) Specification, Rev. 1.1, Sep. 23, 1998, which hereby incorporated by reference in its entirety. Some computer busses include a bus controller for enabling the operations of the computer bus. Some bus controllers execute operating code in performing their operations. Bus controller operating code may be stored in a separate memory circuit or may be stored in system memory. It has been known to store operating code for a USB bus controller in a real mode memory portion of system memory. One problem with storing bus controller operating code in a real mode memory portion of system memory is it may limit the flexibility of the usage of system. memory. Also, storing bus controller operating code in a real mode memory portion of system memory increases the probability of corruption of the operating code by the operating system or other utilities of a computer system.
What is needed is an improved system for storing bus controller operating code.
In has been discovered that storing operating code for a computer bus controller in a non operating system managed, extended portion of system memory advantageously provides for a better utilization of system memory.
In one aspect, a computer system includes a system processor, a system memory operably coupled to the system processor, a computer bus operably coupled to the system processor, and a computer bus controller for the computer bus. During an operation of the computer system, operating code for the computer bus controller is stored in an extended portion of the system memory that is non operating system managed.
In another aspect, a computer system includes a system processor, a system memory operably coupled to the system processor, a computer bus operably coupled to the system processor, a computer bus controller for the computer bus, and a non volatile memory. The non volatile memory stores code whose execution by the system processor writes operating code for the computer bus controller to an extended portion of the system memory that is non operating system managed.
In another aspect, a method for providing code to a computer bus controller includes writing to a non operating system managed, extended portion of a system memory operating code for a computer bus controller. The method also includes ? executing at least a portion of the operating code by the computer bus controller.